Companies have data centers with information system's resources, such as servers, storage devices, firewalls, routers, network backbones, etc., that are used for executing applications. Typically, farms of resources are created by deploying resources to the farms for executing a particular type of application or suite of applications, such as an application or applications for a billing department. Application designers design conventional farms manually, which is difficult, time consuming, and prone to error.
FIG. 1 is a diagram of a conventional farm. The conventional farm 100 includes networking subnets 105 and computational servers 110 that are used to execute different parts of an application. The different parts of the application may be what are commonly known as “layers” of an application. For example, an application may have a web access layer 120, a presentation layer 130, an application layer 140, among other things. Different administrators are typically responsible for the different parts of the farm. For example, a first administrator may be responsible for the part of the farm that executes the web access layer 120, a second administrator may be responsible for the part of the farm that executes the presentation layer 130 and a third administrator may be responsible for the part of the farm that executes the application layer 140. However, with conventional farms 100, all three of the administrators have access to all parts of the farm. Continuing the example, the first, second and third administrators would have access to all parts of the conventional farm 100 regardless of which layer 120, 130, 140 of the application executes on a part of the conventional farm 100.
For these and other reasons, there is a need for a way to design farms that is easy, that is efficient, that reduces the probability of errors in the design, or that addresses security issues.